#ifndef RAT_ENTITYMANAGER_H
#define RAT_ENTITYMANAGER_H

#include <vector>
#include <string>
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <sstream>

#include "RAT_ResourceManager.h"
#include "RAT_CustomMesh.h"

#include "RAT_Entity.h"
#include "RAT_EntityCustomModel.h"


namespace RAT_ENGINE
{
	class RAT_EntityManager
	{
	public:
		RAT_EntityManager();
		~RAT_EntityManager();

		void Init(RAT_ResourceManager* argResourceManager);
		void Init(RAT_ResourceManager* argResourceManager, std::string argEntitiesFileURL);
		void CleanUp();
		
		RAT_ResourceManager* GetResourceManager() const;
		//RAT_Entity* GetEntity(int argID) const;
		//std::vector<RAT_Entity*> GetEntities() const;
		RAT_EntityCustomModel* GetEntityCustomModel(int argID) const;
		RAT_EntityCustomModel* GetEntityCustomModel(std::string argURL) const;
		std::vector<RAT_EntityCustomModel*> GetEntityCustomModels() const;

		//void AddEntity(RAT_Entity* argEntity);
		void AddEntityCustomModel(RAT_EntityCustomModel* argECM);

		void PrintIO() const;
	private:
		RAT_ResourceManager* resourceManager;

		//std::vector<RAT_Entity*> entities;
		std::vector<RAT_EntityCustomModel*> entityCustomModels;
	};
}

#endif